『関数型デザイン 原則、パターン、実践』
https://gyazo.com/550a96ec3620bd7ec7da5fb25544cef0
2024/5/31
原著
本作では12章にて、関数型プログラミングでSOLIDの原則を再考するという試みがなされています。
やや批判的か
Javaと比較しながら解説する感じらしい
感想 (まだ途中)
あまり期待せずに読んでいる
悪くもないけど、別に良くもない
主張の如何というより、文章の書き方が相性悪いのかな
対象読者は入門者ではなさそう
手続き型、OOPにある程度親しんでないと理解できない話が多そう
ボブおじさん、割と説明下手じゃない?
いったん中断しようかなmrsekut.icon
飽きてきた
Clojure熱が出てきたら読むか、
トピック別につまみ食いするか
序文
関数型言語の歴史とか、本の概要
第I部 関数型の基礎
第1章 不変性
関数型プログラミングとは「代入文のないプログラミング」のこと
「マイルストーンのプログラム」ってなんやねん
Kindle、めっちゃコード見づらいなmrsekut.icon
https://gyazo.com/f8d8c98e57941c031d8840f129d54a4c
適宜、ChatGPTに投げるなどするか
第2章 永続的データ
第3章 再帰と反復
再帰、再帰のmemorize
第4章 遅延
Clojureの遅延リスト
遅延リストを本物のリストに変換する?
遅延のデメリット
遅延があると、
何をする必要があるか、と、
どのぐらいする必要があるか
を切り離せる
第5章 ステートフル
Java, Clojure特有の話が多いなmrsekut.icon
第II部 比較分析
OOPとFPの比較
第I部が面倒になったらII部を併読しても良さそう
第6章 素因数分解
第7章 ボウリングゲーム
第8章 ゴシップ好きなバスの運転手
第9章 オブジェクト指向プログラミング
コードがやっぱ読みづらすぎるmrsekut.icon
Clojure慣れてない、かつ、このレイアウトはキツイ
ChatGPTに見やすくしてもらいつつ読んだ
せめてGitHubにコード載せてくれ〜〜〜
どの部分がPayroll.cljとPayrollImplementation.cljに相当するのか明示されていない
推測すればわかるが不親切すぎ
ただ、内容的には知りたかった箇所だ
こう書いてみると、TypeScriptにはAd Hoc Polymorphismがないので、理想的な構成をできないのがわかるmrsekut.icon
第10章 型
著者は、型チェックを場所によってしたりしなかったり選択できることが、
普通の動的型付/静的型付言語よりも優れている点、と主張している
第III部 関数型デザイン
第11章 データフロー
例が複雑すぎ、かつ説明が終わっていて、例を理解するのに時間がかかったmrsekut.icon
例を理解するのに苦労した割に、主張は普通だった
変更可能な言語では、振る舞いがオブジェクトを流れていく。
関数型言語では、オブジェクトが振る舞いを流れていく。
第12章 SOLID
SOLIDを全て、関数型で説明
そこそこ章が長い
第IV部 関数型の実践
第13章 テスト
pbtとか
第14章 GUI
第15章 並行性
第V部 デザインパターン
第16章 デザインパターンの評価
この時点でKindleまだ64%だ
ここは読んでみてもいいかも
第VI部 ケーススタディ
第17章 Wa-Tor
はやよみもまだしてない